#pragma once

#include "utility/sharedptr.h"

struct Surface_Raw;
void FreeSurface(void* p);

namespace Ut
{
	template <>
	inline void Destroy<Surface_Raw>(void* p)
	{
		FreeSurface(p);
	}
}

namespace Render
{
	typedef Ut::SharedPtr<Surface_Raw> Surface;
	typedef Surface_Raw* SurfacePtr;

	Surface Load(const char* filename);
	Surface CreateSurface(int width, int height);
	
	int GetWidth(const SurfacePtr surface);
	int GetHeight(const SurfacePtr surface);
}

